/**
 * axios 封装
 */
import axios from "axios";
import {
	Toast,
	Dialog
} from "vant";

// 创建一个 axios 实例
const service = axios.create({
	withCredentials: true, // send cookies when cross-domain requests
	baseURL: "http://www.zjff495.cn:5050",
	timeout: 5000, // 设定响应超时
});
/**
 * 请求拦截器
 */
service.interceptors.request.use((config) => {
	// 在发送请求之前做些什么  
	Toast.loading('加载中...'); // 显示loading
	return config;
}, (error) => { // 处理请求错误
	Toast.clear(); // 隐藏loading
	return Promise.reject(error);
});

/**
 * 响应拦截器，
 * 每次响应的格式
 * { code => 状态码, msg => '响应信息', data => 数据 }
 */
service.interceptors.response.use((response) => {
	Toast.clear(); // 隐藏loading
	const result = response.data; //注意后端返回的数据格式 result = { code msg data }
	if (result.code == 1) { //注意返回的code值的含义
		return Promise.resolve(result); //返回成功  
	} else {
		// 显示错误信息    
		Dialog.alert({
			title: "响应错误",
			message: result.msg
		});
		return Promise.reject(new Error(result.msg || "未知的响应错误"));
	}
}, (error) => {
	console.error("响应出错:" + error); //控制台错误提示  
	Toast.clear(); // 隐藏loading    
	Dialog.alert({ // 全局错误提示
		title: "响应拦截器错误",
		message: error.message
	});
	return Promise.reject(error);
});

//默认引出
export default service;
